Traditionally, human interaction with digital data processing systems (e.g., personal computers, desktop computers, laptop computers, tablet computers, server computers, cell phones, PDAs, gaming systems, televisions, set top boxes, radios, portable music players, and the like) required physical manipulation of one or more input devices such as a keyboard or mouse. These systems present a number of ergonomic issues, as the user is required to conform to the fixed geometry of the device. For example, traditional input devices have fixed or limited button sizes, which can make interaction with such devices awkward and/or error prone, especially for those with larger or smaller hands. Traditional input devices can also increase the weight and size of the digital data processing system, thereby reducing portability and user convenience. Moreover, physical acquisition can be ungainly, while the frequent shifting between devices (e.g., between a keyboard, number pad, and mouse) can cause a user to not only physically reset but also to perform mental tasks that can be consciously or unconsciously disruptive to the user's thought process and concentration.
Moreover, traditional input devices can present a number of security challenges. First, unless the system is secured (e.g., by a password that must be entered prior to access), anon-authorized user could use a conventional input device to access the associated digital data processing system. Further, even if the system is password-protected, the traditional input device could be vulnerable to unscrupulous third parties who could readily observe keystrokes as a password is entered. Finally, the conventional input device is essentially a passive device that most often provides a one-time gating function with no independent ability (e.g., apart from recognizing a password) to distinguish between a truly authorized system user and an imposter, either at the time of entry of the password, for example, or continually while the user continues accessing the system.
Various “virtual keyboard” input devices have been proposed, however, these too suffer from a number of disadvantages. For example, such systems rely primarily on detecting only the tip of the user's finger and calculating the fingertip's velocity in order to determine when a “key” strike occurs. Such systems also generally rely on a static model in which virtual keys are assigned to fixed locations within a workspace. Accordingly, such systems focus on the point of impact between a user's fingertip and a surface that defines the workspace. In practice, however, data regarding the fingertip's velocity at a fixed virtual location is insufficient to achieve the level of accuracy that users need and/or expect from an input device. Moreover, these systems essentially lock the user into a fixed geometry that presents the same ergonomic issues posed by traditional mechanical keyboards as discussed above, for example. Further, such systems generally function only in a keyboard mode, or lack a convenient and non-disruptive way to switch between available input modes. An exemplary virtual keyboard input device is disclosed in U.S. Pat. No. 6,614,422 to Rafii et al., entitled “METHOD AND APPARATUS FOR ENTERING DATA USING A VIRTUAL INPUT DEVICE,” the entire contents of which are incorporated herein by reference.
In view of the foregoing, there is a need for improved input devices for digital data processing systems.